/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package MemoFijaEjercicio002;
import java.util.Iterator;
import java.util.List; 
import java.util.ArrayList;
/**
 *
 * @author UNSAAC30X
 */
public class Relacion implements java.io.Serializable, Iterable<Atributo> {
    /** lista de atributos de la relación. */ 
    private List<Atributo> atributos; 
    /** Constructor por Default de una relación. */
    public Relacion() {
        atributos = new ArrayList<Atributo>();
    }
    public Relacion(List<Atributo> atributos) { 
        this.atributos = new ArrayList<Atributo>(atributos); }
    protected void adicionarAtributo(Atributo atributo) { 
        atributos.add(atributo); }
     public int getNumeroDeAtributos() { return atributos.size(); }
    @Override public Iterator<Atributo> iterator() { 
        return atributos.iterator(); }
    public Atributo getAtributo(int i) { 
        return atributos.get(i); }
     public int getIndiceAtributo(String atr) { 
         int i = 0; 
         for (Atributo atributo : atributos) {
             if (atributo.getNombre().equals(atr)) {
                 return i; } 
         }
         return -1; 
     } // getIndiceAtributo()
     @Override public String toString() {
         StringBuilder sb = new StringBuilder();
         sb.append("{"); for (int i = 0; 
                 i < getNumeroDeAtributos() - 1; i++) {
             sb.append(getAtributo(i)).append(", "); 
         } sb.append(getAtributo(getNumeroDeAtributos() - 1)).append("}"); 
         return sb.toString(); } // toString() 
   }
